/**********************************************************

     文件名称: input_com.c

     项目功能: 添加商品信息 

     作者: 佳奇

     邮箱: 1374804492@qq.com 

     创建时间: Fri 26 Aug 2022 09:28:21 PM CST

**********************************************************/


#include <stdio.h>
#include <stdlib.h>
#include "sup_mgr.h"


//	添加商品信息
void input_com(com_list* demo)
{
	while(1)
	{
		system("clear");

		com* s1 = (com*) malloc (sizeof(com));
		com_list* p = (com_list*) malloc (sizeof(com_list));
		p->data = s1;
		p->next = demo->next;

		if(NULL == s1)
		{
			perror("malloc error!");
			return;
		}

		printf("\n请按如下提示依次输入添加商品的各项信息\n");
		
		while(1)
		{
			printf("商品条码：");
			//  判断格式是否输入正确
			while(!geshipanduan(scanf("%d", &s1->barcode)));

			//  判断商品条码是否已经存在 要确保商品条码的唯一性
			if(q_com(demo, s1->barcode))
			{
				printf("\n商品条码(编号)已存在！\n");
				printf("请重新输入\n");
			}
			else break;
		}
		
		c_buffer();
		printf("\n商品名称：");
		scanf("%30s", s1->com_name);
		c_buffer();
		printf("\n商品单价：");
		while(!geshipanduan(scanf("%d", &s1->unit)));
		c_buffer();
		printf("\n商品厂家：");
		scanf("%60s", s1->manu);
		c_buffer();
		printf("\n商品数量：");
		while(!geshipanduan(scanf("%d", &s1->num)));
		c_buffer();
		printf("\n商品余量：");
		while(!geshipanduan(scanf("%d", &s1->allow)));
		c_buffer();

		demo->next = p;

		printf("\n商品 %s 信息添加成功!\n", s1->com_name);
		printf("是否继续添加(y/n):");
		
		if(getchar() == 'y')
			continue;
		else break;
	}
}


//	判断scanf函数是否成功读取到数据
//	成功读取返回 1 失败返回 0
int geshipanduan(int num)
{
	if(!num)
	{
		fprintf(stderr, "\n编号格式输入错误！\n");
		printf("请重新输入：");
		c_buffer();
		return 0;
	}
	else return 1;
}



















